//
//  SHByteUtils.h
//  Backhome
//
//  Created by kwep_vbn on 2017/3/29.
//  Copyright © 2017年 SmartHome. All rights reserved.
//
// byte转换工具

#import <Foundation/Foundation.h>

@interface KNByteUtils : NSObject

/**
 NSData 转 16进制
 */
+ (NSString *)KNGetHexStringByData:(NSData *)data;

/**
 16进制 转 NSData
 */
+ (NSData *)KNGetBytesByNSString:(NSString *)string;

/**
 16进制转10进制
 */
+ (int)KNGetDecimalWithHexString:(NSString *)hex;

+ (Byte)KNConvertUint8toByte:(char)uint8;

+ (UInt8)KNConvertByte2Uint8:(Byte)b;


/**
 将16进制的整数转为字符串

 @param hexInt eg 0xB1
 @return @"B1"
 */
+ (NSString *)KNStringByHexInt:(int)hexInt;

/**
 将16进制整数转为10进制

 @param hexInt 0x10
 @return 10
 */
+ (int)KNHexInt2Int:(int)hexInt;

/**
 十进制转十六进制
 */
+ (NSString *)KNToHex:(int)tmpid;

//  十进制转二进制
+ (NSString *)KNToBinarySystemWithDecimalSystem:(int)num length:(int)length;

//  二进制转十进制
+ (NSString *)KNToDecimalWithBinary:(NSString *)binary;

/**
 二进制转换成十六进制
 
 @param binary 二进制数
 @return 十六进制数
 */
+ (NSString *)KNGetHexByBinary:(NSString *)binary;

/**
 十六进制转换为二进制
 
 @param hex 十六进制数
 @return 二进制数
 */
+ (NSString *)KNGetBinaryByHex:(NSString *)hex;


/**
 10进制的数转为16进制的小端序

 */
+ (NSString *)KNTransforLittleEndianByInt:(int)code;

+ (int)KNDecimalLittleEndianByHexString:(NSString *)hexString;

/**
 将16进制字符串转换成data 1156FFCD3430AA22 {0x11, 0x56, 0xFF, ...}
 */
+ (NSData *)KNDataFromHexString:(NSString *)hexString;

/**
 将Data里的数据转换成10进制
 
 */
+ (int)KNGetDecimalWithData:(NSData *)data;
@end
